package com.jacob.androidstudy.androidnote;

public class $02_Android工程的结构 {
	/**
	 * Android工程的结构
	 * 1.src目录
	 * 按照包的结构，存放Android工程的源文件。
	 * 
	 * 2.gen目录
	 * R.java - 里面都是res目录中资源的映射。
	 * 
	 * 3.Google APIs/Android X.X.X
	 * Framework类库的引用
	 * 
	 * 4.bin目录
	 * XXXX.apk - 程序的apk安装包，类似于java的jar包。
	 * classes.dex - Dalvik虚拟机用来执行的字节码文件，类似于java的class文件。软件发布时，会基于此文件生成一个加密+绑定签名的odex。
	 * 
	 * 5.assets目录
	 * 用来存放工程下的资源，例如MP3文件、JPG文件等。此文件夹下的文件通过路径访问。
	 * 
	 * 6.res目录（这里的资源会在R.java中生成映射，通过R类访问。）
	 * anim - 存放程序中的动画
	 * color - 存放程序中的颜色定义
	 * drawable - 存放程序的图标（不区分分辨率的图标）
	 * drawable-hdpi - 存放程序的图标（大分辨率）
	 * drawable-ldpi - 存放程序的图标（小分辨率）
	 * drawable-mdpi - 存放程序的图标（中分辨率）
	 * layout - 存放界面布局的XML文件
	 * menu - 存放程序中的菜单定义
	 * raw - 用来存放工程下的资源，例如MP3文件、JPG文件等。
	 * values - 存放字符串常量的XML文件
	 * 
	 * 7.xml目录
	 * 用来存放一些额外的XML文件，这些XML文件可以存储数据等信息。
	 * 
	 * 8.AndroidManifest.xml文件
	 * 全局配置文件
	 * 
	 * 9.project.properties文件
	 * 属性配置文件
	 * 
	 * 10.proguard.cfg文件
	 * 工程中的代码混淆配置文件。Android 2.2以上才有。
	 * 
	 * 
	 */
	
	/**
	 * Android的apk文件结构
	 * Google APIs/Android X.X.X
	 * 这些JAR包不会打包进apk，程序在终端安装后，直接调用终端ROM中的jar包。
	 * 
	 * META-INF目录
	 * 这个里面是一些签名信息。
	 * 
	 * res目录
	 * 由Android工程中的res目录中的内容（图片、图标等例外）经过压缩、加密得到。（raw目录中的内容不压缩加密）
	 * 
	 * AndroidManifest.xml文件
	 * 由Android工程中的AndroidManifest.xml文件经过压缩、加密得到。
	 * 
	 * classes.dex文件
	 * 由src目录下的源码，经过JDK编译和platform-tools下面的dx.bat压缩得到的，Dalvik虚拟机用来执行的字节码文件，类似于java的class文件。
	 * 
	 * resources.arsc文件
	 * 是res目录中资源的索引文件。
	 * 
	 * 
	 * Android工程中的内容按照上面规则，由platform-tools下面的aapt.exe打包成apk文件。
	 * 
	 * 
	 */

}
